import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy


# 可以不写默认当前应用， 指定要自动化的应用包名 com.hollysos.manager.seedindustry
#appPackage='com.miui.home',
#可以不写默认当前页面，
#appActivity='.launcher.Launcher',

# 定义Appium驱动的期望能力
capabilities = dict(
    platformName='Android',  # 指定平台为Android
    automationName='uiautomator2',  # 指定自动化引擎为UiAutomator2
    # deviceName='7llfge9ppv69uko7',  # 设备名称（Android中可以随意填写）
    appPackage='com.android.settings',  # 指定要自动化的应用包名
    appActivity='.Settings',  # 指定要启动的应用活动
    # language='en',  # 设置语言为英语,不写默认
    # locale='US'  # 设置区域为美国
)

# 定义Appium服务器URL
appium_server_url = 'http://localhost:4723'

class TestAppium(unittest.TestCase):
    # 在每个测试之前设置测试环境
    def setUp(self) -> None:
        # 使用服务器URL和期望能力初始化Appium驱动
        self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))

    # 在每个测试之后清理测试环境
    def tearDown(self) -> None:
        if self.driver:
            # 退出驱动会话
            self.driver.quit()

    # 定义一个测试用例来查找并点击“Battery”选项
    def test_find_battery(self) -> None:
        # 使用XPath查找文本为“Battery”的元素
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
        # 点击找到的元素
        el.click()

# 当脚本执行时运行测试
if __name__ == '__main__':
    unittest.main()